package com.ahora.org.ejb.jpa.entities;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * The persistent class for the TB_REQUISITOS database table.
 * 
 */
@Entity
@Table(name = "TB_REQUISITOS")
public class Requisitos implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "SEC_REQUISITOS")
	@SequenceGenerator(name="SEC_REQUISITOS", sequenceName = "SEC_REQUISITO")
	@Column(name = "ID_REQUISITO")
	private int idRequisito;

	@Column(name = "COD_REQUISITO")
	private String codRequisito;

	private String descripcion;

	@Column(name = "FECHA_MODIFICACION")
	private Timestamp fechaModificacion;

	@Column(name = "FECHA_REGISTRO")
	private Timestamp fechaRegistro;

	@Column(name = "ID_ESTADO")
	private int idEstado;

	@Column(name = "NOMBRE_REQUISITO")
	private String nombreRequisito;

	private String nombrearc;

	@Lob()
	private byte[] plantilla;

	// bi-directional many-to-one association to EstadoGenerale
	@ManyToOne
	@JoinColumn(name = "ID_ESTADO_D_R_E")
	private EstadoGenerales tbEstadoGenerale;

	// bi-directional many-to-one association to Usuario
	@ManyToOne
	@JoinColumn(name = "ID_USUARIO")
	private Usuario tbUsuario;

	// bi-directional many-to-one association to ApelacionReconsideracion
	@OneToMany(mappedBy = "tbRequisitos")
	private Set<DetalleCupexRequisito> tbDetalleCupexRequisito;

	// bi-directional many-to-one association to ApelacionReconsideracion
	@OneToMany(mappedBy = "tbRequisitos")
	private Set<DetalleProcesoRequisitos> tbDetalleProcesoRequisito;

	public Requisitos() {
	}

	public int getIdRequisito() {
		return this.idRequisito;
	}

	public void setIdRequisito(int idRequisito) {
		this.idRequisito = idRequisito;
	}

	public String getCodRequisito() {
		return this.codRequisito;
	}

	public void setCodRequisito(String codRequisito) {
		this.codRequisito = codRequisito;
	}

	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Timestamp getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Timestamp fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public Timestamp getFechaRegistro() {
		return this.fechaRegistro;
	}

	public void setFechaRegistro(Timestamp fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public int getIdEstado() {
		return this.idEstado;
	}

	public void setIdEstado(int idEstado) {
		this.idEstado = idEstado;
	}

	public String getNombreRequisito() {
		return this.nombreRequisito;
	}

	public void setNombreRequisito(String nombreRequisito) {
		this.nombreRequisito = nombreRequisito;
	}

	public String getNombrearc() {
		return this.nombrearc;
	}

	public void setNombrearc(String nombrearc) {
		this.nombrearc = nombrearc;
	}

	public byte[] getPlantilla() {
		return this.plantilla;
	}

	public void setPlantilla(byte[] plantilla) {
		this.plantilla = plantilla;
	}

	public EstadoGenerales getTbEstadoGenerale() {
		return this.tbEstadoGenerale;
	}

	public void setTbEstadoGenerale(EstadoGenerales tbEstadoGenerale) {
		this.tbEstadoGenerale = tbEstadoGenerale;
	}

	public Usuario getTbUsuario() {
		return this.tbUsuario;
	}

	public void setTbUsuario(Usuario tbUsuario) {
		this.tbUsuario = tbUsuario;
	}

	public Set<DetalleCupexRequisito> getTbDetalleCupexRequisito() {
		return tbDetalleCupexRequisito;
	}

	public void setTbDetalleCupexRequisito(
			Set<DetalleCupexRequisito> tbDetalleCupexRequisito) {
		this.tbDetalleCupexRequisito = tbDetalleCupexRequisito;
	}

	public Set<DetalleProcesoRequisitos> getTbDetalleProcesoRequisito() {
		return tbDetalleProcesoRequisito;
	}

	public void setTbDetalleProcesoRequisito(
			Set<DetalleProcesoRequisitos> tbDetalleProcesoRequisito) {
		this.tbDetalleProcesoRequisito = tbDetalleProcesoRequisito;
	}

	//variables auxiliares
	@Transient
	private boolean seleccion;

	public boolean isSeleccion() {
		return seleccion;
	}

	public void setSeleccion(boolean seleccion) {
		this.seleccion = seleccion;
	}
	
	
}